package main

// import "fmt"
// import "unsafe"

import (
	"fmt"
	"unsafe"
)

// 正数的基本使用
func main() {

	var i int = 1
	fmt.Println("i=", i)

	var j uint8 = 255
	fmt.Println("j=", j)

	var k uint16 = 255
	fmt.Println("k=", k)

	// int uint rune byte 的使用
	var a int = 8900
	fmt.Println("a=", a)
	var b uint = 1
	var c byte = 255
	fmt.Println("b=", b, "c=", c)

	//整形的使用细节
	var n1 = 100 //n1 是什么类型
	//这里我们给介绍一下如何查看某个变量的数据类习惯
	//fmt.Printf() 可以用于格式化输出
	fmt.Printf("n1 的类型 %T  \n", n1)

	//如何在程序查看某个变量的占用字节大小和数据类型 （使用较多）
	var n2 int64 = 10
	//unsafe.Sizeof(n2) 时unsafe包中的一个函数，可以返回n1变量占用的字节数
	fmt.Printf("n2 的类型 %T n2占用的字节数时 %d ", n2, unsafe.Sizeof(n2))

	//Golang程序中 整形变量在使用时，遵守保小不保大的原则
	//即：在保证程序正确运行下，尽量使用占用空间小的数据类型
	var age byte = 90
	fmt.Println("age=", age)
}
